Map data or geographic data are used in computer based systems that provide useful features to users. For example, the identification of routes to destinations or points of interests. A navigation system determines the optimum route to be taken by the end user to travel from the origin to the destination location from map data stored in a map database. Similarly, the navigation system may query the map data for nearby points of interest.
Map data is compiled first and then is distributed to the customers in a form of a data service where data is typically partitioned to allow individual customers to access on the data that they actually need.
As new roads are built, other roads are closed, or locations of business are changed, the geographic data is changing. When it comes to compilation of this data, there are at least two possible approaches. One way is to recompile all map data and replace the entire existing map with a new version containing new, updated map data. Another way is to do incremental compilation updating only certain portions of the map data incrementally.
Although both approaches are possible an important consideration for compilation is the fact that typically map data service needs to expose multiple versions of data, because different clients might not be able to update version of the map data that they are using and need to just upload additional tiles corresponding to the map version that they are already using. Because, in reality, not all the tiles include changes, incremental compilation saves a significant amount of space for storing tiles. This approach however creates a problem of maintain consistency between tiles with a different versions.